Customized coexistence management based on user behavior

ABSTRACT

A method for customized coexistence management based on user behavior is disclosed. The method can include a wireless communication device determining a behavior pattern of a user of the wireless communication device; assigning a priority level to each of a first application and a second application based on the behavior pattern; using a first wireless communication interface to support data communication for the first application; using a second wireless communication interface to support data communication for the second application concurrent with data communication for the first application over the first wireless communication interface; and managing in-device coexistence of the first wireless communication interface and the second wireless communication interface during concurrent data communication for the first application and the second application based on the priority level assigned to the first application and the priority level assigned to the second application.

FIELD OF THE DESCRIBED EMBODIMENTS

The described embodiments relate generally to wireless communicationsand more particularly to providing customized in-device coexistencemanagement based on user behavior.

BACKGROUND

Many wireless communication devices support multiple wirelesscommunication technologies and may concurrently communicate via multiplewireless communication technologies, and, thus, via multiple radiolinks. In many instances, wireless communication technologies used by adevice can use channel bands that may interfere with each other. In suchinstances, energy from a band used by one technology can leak into aband used by another technology. This energy leakage can raise the noisefloor and cause a problem known as desense. In many instances, desensecan negatively impact the use of certain channel bands and, in severecases, can render certain channel bands unusable. Accordingly,interference that can result in desense poses a problem for in-devicecoexistence of multiple wireless communication technologies.

A particularly troublesome in-device coexistence condition can resultfrom a scenario in which a device emits a transmission via a firstwireless communication technology, referred to as an aggressortechnology, while the device is receiving data via a second wirelesscommunication technology, referred to as a victim technology. Datareceipt by the victim technology can be damaged by desense interferencefrom the aggressor transmission. In this regard, received packet errors,or even complete deafening of the victim technology receiver can resultfrom the interference that can be caused by the aggressor technologytransmission. For example transmission of a cellular signal by a deviceat a time when a Bluetooth or wireless local area network (WLAN) signalis received can deafen the Bluetooth or WLAN receiver, causing errorsand, in some cases, complete loss of connection.

Many wireless communication devices supporting multiple wirelesscommunication technologies accordingly implement coexistence managementpolicies in an attempt to reduce or avoid in-device interferenceresulting from concurrent communication via multiple radio links.However, existing coexistence management policies are generally staticpolicies, such as may be defined by network service providers, which areapplied across multiple devices and users. For example, data traffic onan aggressor radio link is often penalized by default regardless of therelative level of importance between the data traffic on the aggressorradio link and data traffic on the victim radio link. These staticpolicies fail to take into account the preferences of specific usersand, thus often to fail to provide a good quality of experience forusers.

BRIEF SUMMARY OF SOME EMBODIMENTS

Some example embodiments disclosed herein address deficiencies inexisting coexistence management techniques by providing customizedcoexistence management based on user behavior. More particularly, awireless communication device in accordance with some exampleembodiments can assign a priority level to each of a plurality ofapplications implemented on the wireless communication device based atleast in part on an observed behavior pattern of a user of the device.In this regard, such example embodiments can uniquely prioritizeapplications for a given user based on the historical behavior patternof the user. The wireless communication device of such exampleembodiments can use the user-specific priority levels to makecoexistence management decisions when data communication for a firstapplication is ongoing over a first wireless communication interfaceconcurrent with data communication for a second application over asecond wireless communication interface. Thus, for example, if theuser's past behavior pattern indicates that the first application is ahigher priority application to the user than the second application,coexistence management decisions can be made to avoid penalizingthroughput of data communication for the first application to reduceinterference with data communication for the second application.Accordingly, a quality of service for the first application can bepreserved, thereby providing a better user experience than if throughputfor the first application were reduced in accordance with a static,one-size-fits-all coexistence policy. Such example embodiments providecustomized, user-specific coexistence management, thereby providingusers with an improved quality of experience.

This Summary is provided merely for purposes of summarizing some exampleembodiments so as to provide a basic understanding of some aspects ofthe disclosure. Accordingly, it will be appreciated that the abovedescribed example embodiments are merely examples and should not beconstrued to narrow the scope or spirit of the disclosure in any way.Other embodiments, aspects, and advantages will become apparent from thefollowing detailed description taken in conjunction with theaccompanying drawings which illustrate, by way of example, theprinciples of the described embodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

The described embodiments and the advantages thereof may best beunderstood by reference to the following description taken inconjunction with the accompanying drawings. These drawings in no waylimit any changes in form and detail that may be made to the describedembodiments by one skilled in the art without departing from the spiritand scope of the described embodiments.

FIG. 1 illustrates a wireless communication system in accordance withsome example embodiments.

FIG. 2 illustrates a block diagram of an example apparatus that can beimplemented on a wireless communication device in accordance with someexample embodiments.

FIG. 3 illustrates a system layer diagram in accordance with someexample embodiments.

FIG. 4 illustrates a flowchart according to an example method forcustomized coexistence management based on user behavior in accordancewith some example embodiments.

FIG. 5 illustrates a flowchart according to an example method forassigning priority levels to applications based on user behavior inaccordance with some example embodiments.

FIG. 6 illustrates a flowchart according to an example method formanaging radio resources for location-based services based on userbehavior in accordance with some example embodiments.

FIG. 7 illustrates a flowchart according to an example method forselecting a wireless communication interface for an application based onuser behavior in accordance with some example embodiments.

FIG. 8 illustrates a flowchart according to an example method forswitching a wireless communication interface for an application inaccordance with some example embodiments.

FIG. 9 illustrates an example system for synchronizing behavior patternsacross multiple wireless communication devices in accordance with someexample embodiments.

DETAILED DESCRIPTION OF SELECTED EMBODIMENTS

Some example embodiments disclosed herein provide customized coexistencemanagement based on user behavior. More particularly, some exampleembodiments assign a priority level to each of a plurality ofapplications implemented on the wireless communication device based atleast in part on an observed behavior pattern of a user of the device.In this regard, such example embodiments can uniquely prioritizeapplications for a given user based on the historical behavior patternof the user. The wireless communication device of such exampleembodiments can use the user-specific priority levels to makecoexistence management decisions when data communication for a firstapplication is ongoing over a first wireless communication interfaceconcurrent with data communication for a second application over asecond wireless communication interface. Thus, for example, in someembodiments, if the user's past behavior pattern indicates that thefirst application is a higher priority application to the user than thesecond application, coexistence management decisions can be made toavoid penalizing throughput of data communication for the firstapplication to reduce interference with data communication for thesecond application. Accordingly, when a potential for in-devicecoexistence exists due to concurrent data communication for multipleapplications, coexistence decisions can be made to provide a user with abetter quality of experience based on a relative importance of theactive applications to the user based on past behavior of the user.

FIG. 1 illustrates a wireless communication system 100 including awireless communication device 102 in accordance with some exampleembodiments. The wireless communication device 102 can be any computingdevice configured to wirelessly access one or more wireless networksand/or wirelessly communicate with one or more further wirelesscommunication devices in accordance with various example embodiments. Byway of non-limiting example, the wireless communication device 102 canbe embodied as a cellular phone, such as a smart phone device, a tabletcomputing device, a laptop computer, and/or other computing device thatcan be configured to access a wireless network and/or wirelesslycommunicate with a further wireless communication device.

The wireless communication device 102 can include a plurality ofwireless communication interfaces. Each wireless communication interfacecan be configured to support communication between the wirelesscommunication device 102 and a wireless network and/or a furtherwireless communication device via a radio access technology (RAT). Forexample, a wireless communication interface can be configured to supporta radio link between the wireless communication device 102 and a networkaccess point for a wireless communication network. As a further example,a wireless communication interface can be configured to support a radiolink between the wireless communication device 102 and a furtherwireless communication device.

The wireless communication device 102 of some example embodiments caninclude one or more cellular communication interfaces, which can enablethe wireless communication device 102 to access a cellular network, suchas via a radio link to a cellular base station. In embodiments in whichthe wireless communication device 102 includes one or more cellularcommunication interfaces, the cellular communication interface(s) can,for example, be configured to support communication via a Long TermEvolution (LTE) cellular communication technology, an LTE-Advanced(LTE-A) cellular communication technology, a Universal MobileTelecommunications System (UMTS) cellular communication technology, aGlobal System for Mobile Communications (GSM) cellular communicationtechnology, a Code Division Multiple Access (CDMA) cellularcommunication technology, a CDMA 2000 cellular communication technology,and/or other cellular communication technology.

In some example embodiments, the wireless communication device 102 canadditionally or alternatively include one or more wireless local areanetwork (WLAN) communication interfaces. A WLAN communication interfacecan be configured to support a radio link with a WLAN access point, suchas in a structured WLAN, and/or a radio link with another wirelesscommunication device, such as in an unstructured, or ad-hoc, WLAN. AWLAN communication interface can be configured to support communicationvia any WLAN RAT, such as, by way of example, a RAT implementing anInstitute of Electrical and Electronics Engineers (IEEE) 802.11 standard(e.g., 802.11a, 802.11b, 802.11g, 802.11n, 802.11ac, 802.11ad, and/orother present or future developed version of 802.11).

The wireless communication device 102 of some example embodiments canadditionally or alternatively include one or more wireless personal areanetwork (WPAN) communication interfaces. A WPAN communication interfacecan be configured to support a radio link for communication in a WPAN inaccordance with any WPAN RAT, such as, Bluetooth, Zigbee, Z-Wave,Wireless Universal Serial Bus (USB), and/or the like. In some exampleembodiments, the wireless communication device 102 can include a WPANcommunication interface supporting communication in accordance with aversion of the IEEE 802.15 standard.

In some example embodiments, the wireless communication device 102 caninclude one or more global navigation satellite system (GNSS)communication interfaces. A GNSS communication interface can beconfigured to support a radio link to a satellite navigation service,such as, the Global Positioning System (GPS), the Beidou navigationsystem, the Galileo positioning system, the Russian GLONASS system,and/or the like, that can be used by the wireless communication device102 of some example embodiments to ascertain a location of the wirelesscommunication device 102.

It will be appreciated that the foregoing example types of wirelesscommunication interfaces that can be implemented on the wirelesscommunication device 102 are provided by way of non-limiting example. Inthis regard, the wireless communication device 102 of some exampleembodiments can include an alternative type(s) of wireless communicationinterface in addition to or in lieu of those described above.

In some instances, the wireless communication device 102 canconcurrently utilize multiple wireless communication interfaces. In thisregard, the wireless communication device 102 can, in some instances,communicate data via multiple established radio links at a given time.Data communicated via a wireless communication interface over a radiolink can be associated with an active application (or applications) onthe wireless communication device 102. In the example of FIG. 1, tworadio links are illustrated by way of example.

The radio link1 104 can be supported by a first wireless communicationinterface, such as first wireless communication interface 216illustrated in and discussed below with respect to FIG. 2, and canprovide a radio communication link between the wireless communicationdevice 102 and wireless communication network1 106. The wirelesscommunication network1 106 can, by way of non-limiting example, be acellular network, WLAN, WPAN, GNSS network, and/or other type ofstructured or ad hoc wireless network. The radio link1 104 canaccordingly, for example, provide a radio link between the wirelesscommunication device 102 and an access point (e.g., a cellular basestation, WLAN access point, and/or the like) for the wirelesscommunication network1 106. Additionally or alternatively, as a furtherexample, the radio link1 104 can provide a radio link between thewireless communication device 102 and a further wireless communicationdevice(s), which may, collectively, form at least a portion of thewireless communication network1 106. The radio link1 104 can accordinglyuse any RAT supported by the second wireless communication interface andthe wireless communication network1 106.

The radio link2 108 can be supported by a second wireless communicationinterface, such as the second wireless communication interface 218illustrated in and discussed below with respect to FIG. 2, and canprovide a radio communication link between the wireless communicationdevice 102 and wireless communication network2 110. The wirelesscommunication network2 110 can, by way of non-limiting example, be acellular network, WLAN, WPAN, GNSS network, and/or other type ofstructured or ad hoc wireless network. The radio link2 108 canaccordingly, for example, provide a radio link between the wirelesscommunication device 102 and an access point (e.g., a cellular basestation, WLAN access point, and/or the like) for the wirelesscommunication network2 110. Additionally or alternatively, as a furtherexample, the radio link2 108 can provide a radio link between thewireless communication device 102 and a further wireless communicationdevice(s), which may, collectively, form at least a portion of thewireless communication network2 110. The radio link2 108 can accordinglyuse any RAT supported by the second wireless communication interface andthe wireless communication network2 110.

While two radio links are illustrated in FIG. 1, it will be appreciatedthat this illustration is by way of example. In this regard, thewireless communication device 102 of some example embodiments caninclude three or more wireless communication interfaces and can havethree or more corresponding active radio links. As such, it will beappreciated that techniques described herein with respect to examplesinvolving two wireless communication interfaces and/or two active radiolinks can be applied mutatis mutandis to devices and scenarios havingthree or more wireless communication interfaces and/or three or moreactive radio links within the scope of the disclosure.

Concurrent data communication of data via multiple wirelesscommunication interfaces (e.g., via radio link1 104 and radio link2 108)can cause in-device interference in the wireless communication device102 such that data communication via one communication interface caninterfere with the data communication via another communicationinterface. In this regard, interference can result from a transmissionemitted over a first radio link, such as radio link1 104, by a wirelesscommunication interface using an aggressor RAT while another wirelesscommunication device is receiving data via a second radio link, such asradio link2 108, using a victim RAT. In such situations, the aggressorRAT transmissions can inhibit data reception via the victim RAT,potentially resulting in received data errors, or in extreme cases, evencompletely deafening the victim technology receiver. This radiofrequency (RF) interference can be caused by a number of side effectsthat can result from concurrent data communication via multiple wirelesscommunication interfaces on the wireless communication device 102.

For example, RF interference can result from adjacent channelinterference (ACI), in which transmit energy spills over into adjacentbands that may be used by a victim RAT. This problem can also bereferred to as out-of-band (OOB) interference. As a more particularexample, a cellular radio band that can be used by a cellularcommunication interface can be adjacent to an Industrial, Scientific,Medical (ISM) band that can be used by a WLAN communication interfaceand/or a WPAN communication interface. For example, a cellularcommunication interface supporting communication via an LTE rat andusing LTE band 40 using time-division duplexing (TDD) in the 2300-2400MHz band range and/or LTE band 7 using frequency-division duplexing(FDD) in the 2500-2570 MHz band range can act as an aggressor such thattransmissions by the cellular communication interface via these bandscan interfere with reception via a WLAN communication interface and/orWPAN communication interface operating in the adjacent 2400 GHz ISMband. In this regard, transmit energy from the LTE bands can spill overinto the band(s) used by a WLAN communication interface and/or WPANcommunication interface, potentially interfering with data reception bythe WLAN communication interface and/or the WPAN communicationinterface.

As another example, intermodulation distortion can result in RFinterference that can harm reception by a wireless communicationinterface. In this regard, harmonics can be generated when two or moretransmit frequencies “mix” with each other due to non-linearity. Forexample, cellular bands 5 and/or 8 can mix with 2.4 GHz ISM bandtransmissions to desense a GNSS receive band that may be used by a GNSScommunication interface. As still a further example, RF interference canresult form harmonic distortion in which harmonics can be generated froma single transmit frequency due to a non-linearity.

The wireless communication device 102 can accordingly implement any of avariety of in-device coexistence techniques that are known to thosehaving ordinary skill in the art to reduce such in-device RFinterference that may result from concurrent use of multiple wirelesscommunication interfaces. As will be described further herein below,these coexistence techniques can be applied in some example embodimentsbased at least in part on an historical behavior pattern for a user ofthe wireless communication device.

FIG. 2 illustrates a block diagram of another example apparatus that canbe implemented on a wireless communication device, such as wirelesscommunication device 102, in accordance with some embodiments. In thisregard, FIG. 2 illustrates an apparatus 200 that can, when implementedon a computing device, such as wireless communication device 102, enablethe computing device to operate within the system 100 in accordance withone or more example embodiments. It will be appreciated that thecomponents, devices or elements illustrated in and described withrespect to FIG. 2 below may not be mandatory and thus some may beomitted in certain embodiments. Additionally, some embodiments caninclude further or different components, devices or elements beyondthose illustrated in and described with respect to FIG. 2.

In some example embodiments, the apparatus 200 can include processingcircuitry 210 that is configurable to perform actions in accordance withone or more example embodiments disclosed herein. In this regard, theprocessing circuitry 210 can be configured to perform and/or controlperformance of one or more functionalities of a wireless communicationdevice in accordance with various example embodiments, and thus canprovide means for performing functionalities of wireless communicationdevice 102 in accordance with various example embodiments. Theprocessing circuitry 210 can be configured to perform data processing,application execution and/or other processing and management servicesaccording to one or more example embodiments.

In some embodiments, the apparatus 200 or a portion(s) or component(s)thereof, such as the processing circuitry 210, can include one or morechipsets, which can each include one or more chips. The processingcircuitry 210 and/or one or more further components of the apparatus 200can therefore, in some instances, be configured to implement anembodiment on a single chip or chipset. In some example embodiments inwhich one or more components of the apparatus 200 are embodied as achipset, the chipset can be capable of enabling a computing device tooperate in the system 100 when implemented on or otherwise operablycoupled to the computing device. In some such example embodiments, theapparatus 200 can, for example, include a cellular baseband chipset, aGNSS chipset, a WLAN chipset, a Bluetooth chipset, and/or the like.

In some example embodiments, the processing circuitry 210 can include aprocessor 212 and, in some embodiments, such as that illustrated in FIG.2, can further include memory 214. The processing circuitry 210 can bein communication with, control, and/or otherwise be coupled with aplurality of wireless communication interfaces, such as the firstwireless communication interface 216 and the second wirelesscommunication interface 218, that can be implemented on the apparatus200; behavior module 220, coex manager 222, and/or location module 224.

The processor 212 can be embodied in a variety of forms. For example,the processor 212 can be embodied as various hardware-based processingmeans such as a microprocessor, a coprocessor, a controller or variousother computing or processing devices including integrated circuits suchas, for example, an ASIC (application specific integrated circuit), anFPGA (field programmable gate array), some combination thereof, or thelike. Although illustrated as a single processor, it will be appreciatedthat the processor 212 can comprise a plurality of processors. Theplurality of processors can be in operative communication with eachother and can be collectively configured to perform one or morefunctionalities of wireless communication device 102 as describedherein. In some example embodiments, the processor 212 can be configuredto execute instructions that can be stored in the memory 214 or that canbe otherwise accessible to the processor 212. As such, whetherconfigured by hardware or by a combination of hardware and software, theprocessor 212 capable of performing operations according to variousembodiments while configured accordingly.

In some example embodiments, the memory 214 can include one or morememory devices. Memory 214 can include fixed and/or removable memorydevices. In some embodiments, the memory 214 can provide anon-transitory computer-readable storage medium that can store computerprogram instructions that can be executed by the processor 212. In thisregard, the memory 214 can be configured to store information, data,applications, instructions and/or the like for enabling the apparatus200 to carry out various functions in accordance with one or moreexample embodiments. In some embodiments, the memory 214 can be incommunication with one or more of the processor 212, one or morewireless communication interfaces (e.g., first wireless communicationinterface 216, second wireless communication interface 218, and/or thelike), behavior module 220, coex manager 222, and/or location module 224via a bus (or buses) for passing information among components of theapparatus 200.

The apparatus 200 can further include a plurality of wirelesscommunication interfaces, including the first wireless communicationinterface 216 and the second wireless communication interface 218. Whileonly two wireless communication interfaces are illustrated in FIG. 2, itwill be appreciated that, in some example embodiments, the apparatus 200can include two or more wireless communication interfaces. Each wirelesscommunication interface implemented on the apparatus 200 can include,for example, an antenna (or multiple antennas) and supporting hardwareand/or software for enabling communications in accordance with a RATthat can be supported by the wireless communication interface. In thisregard, a wireless communication interface, such as the wirelesscommunication interfaces 216 and 218, that can be implemented on theapparatus 200 can be configured to send (e.g., transmit) wirelesssignals and receive wireless signals over a radio link(s), such as radiolink1 104 or radio link2 108. Accordingly, a wireless communicationinterface, such as the wireless communication interfaces 216 and 218,can be configured to support data communication with a wirelesscommunication network and/or another wireless communication devicewithin a wireless communication network.

In some example embodiments, a wireless communication interface, such asthe first wireless communication interface 216 and/or the secondwireless communication interface 218, can provide a physical layer (PHY)interface that can be used by a wireless communication device 102.Further, in some example embodiments, a wireless communicationinterface, such as the first wireless communication interface 216 and/orthe second wireless communication interface 218, can be at leastpartially implemented as a chipset, which, when implemented on a device,such as the wireless communication device 102, can enable the device totransmit and/or receive data via a RAT that can be supported by thewireless communication interface. The wireless communication interfaces216 and 218 can each support any type of RAT that can be used forcommunication between a wireless communication device, such as wirelesscommunication device 102, and a further wireless communication deviceand/or wireless communication network. As such, it will be appreciatedthat the first wireless communication interface 216 and the secondwireless communication interface 218 can each be embodied as any type ofwireless communication interface, including, for example, a cellularcommunication interface, WLAN communication interface, WPANcommunication interface, GNSS communication interface, some combinationthereof, and/or the like.

The apparatus 200 can further include behavior module 220. The behaviormodule 220 can be embodied as various means, such as circuitry,hardware, a computer program product comprising a computer readablemedium (for example, the memory 214) storing computer readable programinstructions that are executable by a processing device (for example,the processor 212), or some combination thereof. In some embodiments,the processor 212 (or the processing circuitry 210) can include, orotherwise control the behavior module 220. The behavior module 220 canbe configured to determine a behavior pattern of a user of the wirelesscommunication device 102 based at least in part on historical usage ofthe wireless communication device 102 by the user, in accordance withone or more example embodiments disclosed herein. The behavior module220 can be further configured to assign a priority level to each of aplurality of applications that can be implemented on the wirelesscommunication device 102 based at least in part on the behavior pattern,in accordance with one or more example embodiments disclosed herein.

In some example embodiments, functionality of the behavior module 220can be performed entirely at the wireless communication device 102.However, in some embodiments, such as some example embodiments describedwith respect to FIG. 9, at least some functionality of the behaviormodule 220 can be performed by a network entity, such as synchronizationservice 902, which can be in network communication with the wirelesscommunication device 102. Thus, for example, in some embodiments, thebehavior module 220 can be a distributed entity such that functionalityof the behavior module 220 can be performed by multiple computingdevices acting in cooperation over a network, such as the network 904illustrated in and described below with respect to FIG. 9.

The apparatus 200 can additionally include coex manager 222. The coexmanager 222 can be embodied as various means, such as circuitry,hardware, a computer program product comprising a computer readablemedium (for example, the memory 214) storing computer readable programinstructions that are executable by a processing device (for example,the processor 212), or some combination thereof. In some embodiments,the processor 212 (or the processing circuitry 210) can include, orotherwise control the coex manager 222. The coex manager 222 can beconfigured to manage coexistence of wireless communication devices, suchas first wireless communication interface 216 and second wirelesscommunication interface 218, on the apparatus 200. In some exampleembodiments, the coex manager 222 can be configured to use applicationpriority levels that can be assigned by the behavior module 220 based ona user behavior pattern to make coexistence decisions with respect toconcurrently active wireless communication interfaces.

The apparatus 200 can further include location module 224. The locationmodule 224 can be embodied as various means, such as circuitry,hardware, a computer program product comprising a computer readablemedium (for example, the memory 214) storing computer readable programinstructions that are executable by a processing device (for example,the processor 212), or some combination thereof. The location module 224can be configured to determine a location of the wireless communicationdevice 102 via any one or more of a variety of techniques. For example,in some example embodiments, the location module 224 can be embodied asor otherwise include a GNSS communication interface, which can beconfigured to use a satellite positioning system to determine a locationof the wireless communication device 102. As a further example, in someexample embodiments, the location module 224 can be configured todetermine a location of the wireless communication device 102 throughapplication of techniques such as assisted GPS, signal triangulation,location determination based on a location identifier that can be sensedfrom a WLAN, location determination based on a cell ID for a servingcell, and/or the like. In some example embodiments, the location module224 can additionally or alternatively include various sensors, such asan accelerometer, a gyroscope, and/or the like, which can be configuredto sense motion of the wireless communication device 102. In someexample embodiments, the location module 224 can include and/or can beoperated via location-based service software and/or firmware, such as alocation daemon. A location that can be determined by the locationmodule 224 can, for example, include a coordinate location, a streetaddress, a name of a political region (e.g., city, town, state, country,municipality, and/or the like) in which the wireless communicationdevice 102 can be located, and/or other location reference that can berepresentative of an actual and/or relative location of the wirelesscommunication device 102.

FIG. 3 illustrates a system layer diagram in accordance with someexample embodiments. In this regard, FIG. 3 illustrates an arrangementof system layers 300 that can be implemented on wireless communicationdevice 102 in accordance with some example embodiments.

The system layers 300 can include an application layer 302, which can,for example, be at least partially implemented by applications that canbe executed on the processor 212. The system layers 300 can furtherinclude a behavior module 304, which can, for example, be implemented bythe behavior module 220. In this regard, the behavior module 304 can bepositioned such that user interactions with applications running in theapplication layer 302 can be monitored to ascertain a behavior patternof a user of the wireless communication device 102. While illustrated inFIG. 3 as a separate layer from the application layer 302, in someembodiments, the behavior module 304 may be implemented within theapplication layer 302.

The system layers 300 can further include a coex manager 306 andphysical layer 308. The coex manager 306 can, for example, beimplemented by the coex manager 222. The physical layer 308 can beimplemented by wireless communication interfaces, such as the firstwireless communication interface 216 and second wireless communicationinterface 218, which can be included in the wireless communicationdevice 102. The coex manager 306 can be positioned as an intermediarybetween the behavior module 304 and the physical layer 308. In thisregard, the coex manager 306 can be configured to interact with thebehavior module 304 to access priority levels that can be assigned bythe behavior module 304 to applications implemented on the wirelesscommunication device 102 on the basis of a user behavior pattern. Thecoex manager 306 can use the priority levels to manage coexistence ofmultiple wireless communication interfaces within the physical layer 308in accordance with the respective priority levels assigned toapplications that may be running in the application layer 302 and usingthe physical layer 308 for data communication.

It will be appreciated that the system layers 300 are provided by way ofexample, and not by way of limitation. In this regard, the system layers300 are not to be taken as being comprehensive of all system layers thatmay be implemented on a wireless communication device 102. For example,one or more intermediate layers can be implemented between respectiveones of the system layers 300 in accordance with some exampleembodiments. Further, alternative arrangements of the system layers 300,including arrangements in which two or more of the layers illustrated inFIG. 3 can be combined, are contemplated within the scope of thedisclosure. As still another example, in some embodiments, the coexmanager 306 can be a stand alone control entity that may not beimplemented as an intermediary layer within a data communication pathbetween the application layer 302 and physical layer 308.

Having now generally described the implementation and functionality of awireless communication device in accordance with various exampleembodiments, several example embodiments will now be described infurther detail with reference to the elements illustrated in anddescribed with respect to FIGS. 1-3.

In some example embodiments, the behavior module 220 can be configuredto determine a behavior pattern for a user of the wireless communicationdevice 102 based at least in part on the user's historical usage of thewireless communication device 102. In this regard, the behavior module220 can be configured to monitor and/or otherwise document usage of thewireless communication device 102 by a user associated with the wirelesscommunication device 102 so as to learn the user's behavior and usagepreferences. The monitored usage can include the user's usage ofapplications that can be implemented on the wireless communicationdevice 102. By way of non-limiting example, such applications caninclude an email application, a text messaging application, voice call(e.g., voice over LTE, or VoLTE) application, a web browser application,specific web sites that can be viewed within a web browser application,a location-based service application, a streaming media application(e.g., an internet radio application), a social networking application,a news application, a virtual private network (VPN) application, a chatapplication, any of various mobile applications that can be installed onand/or otherwise accessed by a wireless communication device 102.

In some example embodiments, the behavior module 220 can be configuredto determine a behavior pattern for a user based at least in part on anyof a variety of characteristics of a user's usage of variousapplications that can be used to determine a behavior pattern for theuser. For example, the behavior module 220 can be configured to monitora frequency with which a user uses an application, a length of time thata user uses an application in a given session, a time frame (e.g., amorning, afternoon, evening, a certain day of the week, etc.) in whichthe user uses the application, whether data is uploaded and/ordownloaded when the user uses an application, a volume of data uploadedand/or downloaded when the user uses an application, and/or other suchusage characteristics.

As still a further example, in some example embodiments, the behaviormodule 220 can be configured to document a device usage context of thewireless communication device 102 when an application is used. Thedevice usage context can, for example, include a physical and/orrelative location of the wireless communication device 102, such as auser's home, user's office, on a train, in a car, a physical address, atown, and/or the like, which can be determined by the location module224. Thus, for example, if a user tends to use a certain applicationfrequently in a certain location, the association between theapplication and that location can be observed by the behavior module 220and used to determine a behavior pattern for the user. As a furtherexample, the device usage context can include an activity in which theuser can be engaging and/or a device mobility scenario when using anapplication. For example, an accelerometer and/or other sensor that canbe implemented on the location module 224 can be used to determine auser activity and/or mobility scenario, such as stationary, walking,jogging, in-car mobility, and/or the like. Thus, for example, if a usercommonly uses a streaming media application when jogging, theassociation of the streaming media application with the device usagecontext of jogging can be observed by the behavior module 220 and usedto determine a behavior pattern for the user. As another example, if auser commonly uses a navigation application when driving in a car, theassociation of the navigation application with the device usage contextof driving in a car can be observed by the behavior module 220 and usedto determine a behavior pattern for the user.

In some example embodiments, historic observations of network coveragecharacteristics for certain device usage contexts can also be includedin a behavior pattern for a user. For example, throughputcharacteristics for a WLAN available at the user's home can be noted bythe behavior module 220 in association with the device usage context ofthe user's home. In this regard, when the wireless communication device102 encounters a particular device usage context, the coex manager 222can use historical knowledge of network coverage characteristics for thedevice usage context to make coexistence management decisions, to selecta wireless communication interface to use for the application (e.g., inaccordance with the methods illustrated in and described below withrespect to FIG. 7 and/or FIG. 8), and/or the like.

A behavior pattern for a user that can be determined by the behaviormodule 220 can be indicative of applications that are considered to beof value to the user based on the user's prior usage characteristics.Thus, for example, a first application that is used with greaterfrequency and/or for longer periods of time than a second applicationcan be considered to be of higher value to the user than the secondapplication based on the behavior pattern. In some example embodiments,the behavior pattern can be indicative of behavior patterns at differenttime frames (e.g., different times of day and/or different days of theweek) and/or different device usage contexts. For example, the followingcan be a behavior pattern indicative of applications of high value to auser at given time frames, which can be determined based on historicaldevice usage by an example user in accordance with some exampleembodiments:

-   -   Early morning high value applications: social networking        application, news portal application    -   Mid-morning high value applications: VPN access and enterprise        application    -   Afternoon high value application: chat application    -   Evening/weekend high value application: Location-based service        application    -   Late night high value applications: Internet radio application,        web browser

The behavior module 220 can be further configured to assign a prioritylevel to each of a plurality of applications on the wirelesscommunication device 102 based at least in part on a user's behaviorpattern. In some example embodiments, the assigned priority levels candefine a ranking, such as from 1 to n, with n being an integer number ofapplications ranked by priority, of applications in order of priority tothe user based on the user's behavior pattern. As another example, insome embodiments, assignment of the priority levels can includeclassifying applications into certain defined priority levels, withmultiple applications potentially being classified in a given prioritylevel. For example, in such embodiments, applications can be assignedpriority levels, such as “HIGH” priority, “MEDIUM” priority, “LOW”priority, and/or the like. Accordingly, a list of high priority (e.g.,high value) applications associated with a device user can be maintainedbased on the user's behavior pattern.

In some example embodiments the behavior module 220 can be configured toassign a different set of priority levels for each of a plurality ofperiodically occurring time frames. In this regard, different sets ofpriority levels can be assigned for various time frames within a day(e.g., morning hours, afternoon hours, evening hours, etc.), fordifferent days of the week, and/or for other time frames. For example,given the example behavior pattern of the example user above, a firstset of priority levels can be defined for the “early morning” timeframe, with the social networking application and news portalapplication being allocated high priority levels; a second set ofpriority levels can be defined for the “mid-morning” time frame, withVPN access and enterprise applications being allocated high prioritylevels; a third set of priority levels can be defined for the“afternoon” time frame, with the chat application being allocated a highpriority level; a fourth set of priority levels can be defined for the“evening/weekend” time frame, with the location-based serviceapplication being allocated a high priority level; and a fifth set ofpriority levels can be defined for the “late night” time frame, with theInternet radio and web browser applications being allocated highpriority levels.

In some example embodiments, the behavior module 220 can be additionallyor alternatively configured to assign a different set of priority levelsfor each of a plurality of device usage contexts. For example, adifferent set of priority levels can be defined for each of a respectiveplurality of device locations, such as “home,” “office,” and/or otherlocations which the user may frequent. As a further example, a differentset of priority levels can be defined for activity-based usage contexts,such as when driving in a car, riding on a train, exercising, and/or thelike.

In some example embodiments, time frame and device usage contexts can becombined to generate combined time frame and device usage contextscenarios for which respective priority level sets can be assigned. Forexample, a first set of priority levels can be assigned for a scenarioin which a user is driving in a car between the hours of 7 AM and 9 AMand a second set of priority levels can be assigned for a scenario inwhich the user is exercising between the hours of 7 AM and 9 AM.

In some example embodiments, the behavior module 220 can be configuredto additionally consider defined user interests in addition to behaviorpatterns when assigning priority levels to applications. For example, auser of the wireless communication device 102 can, in some exampleembodiments, define an interest profile that can be indicative ofcertain interests, preferences, and/or configuration settings associatedwith the user. The interest profile can, for example, be defined withinan application that can be used for purposes of implementingbehavior-based coexistence management in accordance with various exampleembodiments. Additionally or alternatively, as another example, theinterest profile can include an interest profile that a user may havedefined within in a social network.

In some example embodiments, there can be a plurality of definedbehavior pattern categories (e.g., behavior personas). A user can becategorized in one of the defined behavior pattern categories based atleast in part on the user's behavior pattern. In this regard, eachbehavior pattern category can represent a “bucket” defined based atleast in part on a behavior pattern range, and the user can becategorized into the behavior pattern category which his or her behaviorpattern most closely resembles.

In some example embodiments a user interest profile can be factored inaddition to behavior pattern for categorizing a user in a definedbehavior pattern category. Thus, for example, user interests,preferences, configuration settings, biographical details, and/or thelike can be used to categorize a user into a certain behavior patterncategory in accordance with some example embodiments.

A behavior pattern category can have an associated set of predefinedapplication priority levels. Accordingly, in example embodiments inwhich the behavior module 220 categorizes users into a defined behaviorpattern category corresponding to the user's observed behavior pattern,the behavior module 220 can be configured to assign priority levels toapplications in accordance with the set of application priority levelsdefined by the behavior pattern category into which the user isclassified.

In some example embodiments, a behavior pattern category can define aset of application priority levels for each of a plurality of timeframes and/or for each of a plurality of device usage contexts. In suchexample embodiments, the behavior module 220 can accordingly beconfigured to defined time frame-specific and/or device usagecontext-specific application priority levels in accordance with thepriority levels defined by the behavior pattern category into which theuser is categorized.

In some example embodiments, a user can be can be categorized intodifferent behavior pattern categories for different respective timeframes and/or different respective device usage contexts. In thisregard, a user's behavior pattern at a first time frame and/or for afirst device usage context can correspond to a first behavior patterncategory, while the user's behavior pattern at a second time frameand/or for a second device usage context can correspond to a secondbehavior pattern category. Accordingly, in such embodiments, applicationpriority levels can be assigned for a given certain time frame and/or agiven device usage context in accordance with the behavior patterncategory in which the user is categorized for the time frame and/ordevice usage context.

In some example embodiments in which behavior pattern categories arerepresentative of defined behavior personas, the behavior patterncategories can be representative of a stereotypical user having acertain occupation, life style, location of residence, and/or the like.For example, a “corporate” behavior pattern category can be defined. Fora user, Tom, categorized in the corporate behavior pattern category, aVPN application can be defined to have a high priority level in themorning to enable the user to access office email in the morning. AVPN-related application can accordingly be given preferentialcoexistence treatment to a non-VPN related application in the morningfor Tom. As another example, a “stay at home mom” behavior patterncategory can be defined. For a user, Lisa, categorized in the stay athome mom behavior pattern category, a web browser application can beassigned a high priority level and given preferential coexistencetreatment over other applications in the afternoon hours. As yet anotherexample, a “teenager” behavior pattern category can be defined. For auser categorized in the teenager behavior pattern category, gameapplications and streaming media applications can be assigned a highpriority level.

Determination of a behavior pattern for a user can be an ongoingprocess, such that a user's behavior pattern can evolve over time asadditional user behavior is observed. Accordingly, it will beappreciated that priority levels assigned to applications can alsoevolve in accordance with a user's changing behavior pattern.

In some instances, a wireless communication device 102 can be used bymultiple users. As such, in some example embodiments, a behavior patterncan be determined and application priority levels can be assigned foreach respective user of a plurality of users using the wirelesscommunication device 102.

The coex manager 222 can be configured to cooperate with the behaviormodule 220 to use priority levels assigned to applications to managein-device coexistence decisions related to in-device interference whendata communication is ongoing over multiple wireless communicationinterfaces, such as the first wireless communication interface 216 andthe second wireless communication interface 218. In this regard, radioresource management (RRM) decisions can be made to optimize performancefor high value applications as determined by the user's behavior patternso as to avoid degradation of performance for high value applicationswhen performing coexistence management for in-device interferenceresulting from using multiple wireless communication interfaces. Forexample, the coex manager can interact with a packet scheduler to helpprioritize bearer flow of a high value application (e.g., an applicationhaving a higher assigned priority level) over a bearer flow for a lowvalue application (e.g., an application having a lower assigned prioritylevel).

As an example scenario, data communication for a first applicationhaving a high priority level can be ongoing over the first wirelesscommunication interface 216 concurrent with data communication for asecond application having a lower priority level than the firstapplication over the second wireless communication interface 218. Thefirst wireless communication interface 216 can use an aggressor RAT andthe second wireless communication interface 218 can use a victim RATsuch that data transmission via the first wireless communicationinterface 216 for the first application can act as an aggressor to datareception for the second application via the second wirelesscommunication interface 218. However, even though data communication forthe second application suffers as a victim, the coex manager 222 of someexample embodiments can be configured to make coexistence decisions suchthat the data communication for the first application is not penalizedor otherwise impacted by coexistence management actions, as the firstapplication has the higher priority level in this example scenario.Thus, for example, the coex manager 222 may prevent dropping outgoingdata associated with data communication for the first application. Datacommunication for the second application can instead be modified tooccur around data transmission for the first application so as to avoidimpacting the user's quality of experience with respect to the firstapplication.

As a more particular example scenario, data traffic for a high valueapplication can be transmitted over an aggressor LTE radio uplink, whiledata communication is ongoing for a WLAN downlink. The LTE radio uplinkcan act as an aggressor, impacting communication on the WLAN downlink,which can suffer as a victim. If the application associated with LTEuplink communication has a higher priority level than the applicationassociated with the WLAN downlink communication, the coex manager 222can be configured to prevent medium access control (MAC) protocol dataunits (PDUs) containing data associated with the first application fortransmission on the LTE radio uplink from being dropped to reduceinterference to the victim WLAN downlink, even if the LTE uplink isinterfering with performance of the WLAN downlink.

As a further example scenario, data communication for a firstapplication can be ongoing over the first wireless communicationinterface 216 concurrent with data communication for a secondapplication over the second wireless communication interface 218. Thesecond application can have a higher priority level than the firstapplication. The first wireless communication interface 216 can use anaggressor RAT and the second wireless communication interface 218 canuse a victim RAT such that data transmission via the first wirelesscommunication interface 216 for the first application can act as anaggressor to data reception for the second application via the secondwireless communication interface 218. As the second application has ahigher priority than the first application in this example scenario, thecoex manager 222 can be configured to at least temporarily increase apriority of the data communication for the second application over thesecond wireless communication interface 218 to preempt datacommunication for the first application so as to allow the datacommunication for the second application to occur without interferencefrom the data communication for the first application.

As still a further example scenario, data communication for a firstapplication can be ongoing over the first wireless communicationinterface 216 concurrent with data communication for a secondapplication over the second wireless communication interface 218. Thesecond application can have a higher priority level than the firstapplication. The first wireless communication interface 216 can use anaggressor RAT and the second wireless communication interface 218 canuse a victim RAT such that data transmission via the first wirelesscommunication interface 216 for the first application can act as anaggressor to data reception for the second application via the secondwireless communication interface 218. If inter-RAT handover of the datacommunication for the second application is possible without droppingthe session, the coex manager 222 of some example embodiments can beconfigured to transition the data communication for the secondapplication to the first wireless communication interface 216 so thatthe data communication does not suffer as a victim. In some such exampleembodiments, data communication for the first application canadditionally be switched to the second wireless communication interface218 to provide the second application with additional radio resourcesover the first wireless communication interface 216, such as in order toprovide the second application with a threshold throughput level,threshold quality of service, and/or the like.

In embodiments in which priority levels are assigned for specific timeframes and/or specific device usage contexts, the coex manager 222 canbe further configured to make in-device coexistence decisions inaccordance with application priority levels assigned for the time frameand/or device usage context in which in-device interference scenariosoccur. Thus, for example, if data communication for a first applicationover the first wireless communication interface 216 is ongoingconcurrent with data communication for a second application over thesecond wireless communication and device usage context-specificapplication priority levels are assigned, the coex manager 222 can beconfigured to manage in-device coexistence based at least in part onpriority levels assigned to the first application and the secondapplication for the device usage context existing during the concurrentdata communication for the first application and the second application.As a further example, if data communication for a first application overthe first wireless communication interface 216 is ongoing concurrentwith data communication for a second application over the secondwireless communication and time frame-specific application prioritylevels are assigned, the coex manager 222 can be configured to managein-device coexistence based at least in part on priority levels assignedto the first application and the second application for a time frame inwhich the concurrent data communication for the first application andthe second application occurs.

FIG. 4 illustrates a flowchart according to an example method forcustomized coexistence management based on user behavior in accordancewith some example embodiments. In this regard, FIG. 4 illustratesoperations that can be performed by a wireless communication device,such as wireless communication device 102, in accordance with someexample embodiments. One or more of processing circuitry 210, processor212, memory 214, first wireless communication interface 216, secondwireless communication interface 218, behavior module 220, coex manager222, or location module 224 can, for example, provide means forperforming one or more of the operations illustrated in and describedwith respect to FIG. 4.

Operation 400 can include the wireless communication device 102determining a behavior pattern of a user of the wireless communicationdevice 102. Operation 410 can include the wireless communication device102 assigning a priority level to each of a plurality of applicationsimplemented on the wireless communication device 102 based at least inpart on the behavior pattern. The plurality of applications can includea first application and a second application.

Operation 420 can include the wireless communication device 102 usingthe first wireless communication interface 216 to support datacommunication for the first application. For example, the datacommunication for the first application can be carried by radio link1104. Operation 430 can include the wireless communication device 102using the second wireless communication interface 218 to support datacommunication for the second application. For example, the datacommunication for the second application can be carried by radio link2108.

Operation 430 can include the wireless communication device 102 managingin-device coexistence of the first wireless communication interface 216and the second wireless communication interface 218 during concurrentdata communication for the first application and the second applicationbased at least in part on the priority level assigned to the firstapplication and the priority level assigned to the second application.

FIG. 5 illustrates a flowchart according to an example method forassigning priority levels to applications based on user behavior inaccordance with some example embodiments. In this regard, FIG. 5illustrates operations that can be performed by wireless communicationdevice 102 attendant to performance of operations 400 and 410 inembodiments in which a user can be categorized into a defined behaviorpattern category based at least in part on his or her behavior pattern.One or more of processing circuitry 210, processor 212, memory 214,first wireless communication interface 216, second wirelesscommunication interface 218, behavior module 220, coex manager 222, orlocation module 224 can, for example, provide means for performing oneor more of the operations illustrated in and described with respect toFIG. 5.

Operation 500 can include the wireless communication device 102determining a behavior pattern of a user of the wireless communicationdevice 102. In this regard, operation 500 can, for example, correspondto an embodiment of operation 400.

Operation 510 can include the wireless communication device 102categorizing the user in a behavior pattern category selected from aplurality of defined behavior pattern categories based at least in parton the behavior pattern determined in operation 500. In this regard, theselected behavior pattern category can be the behavior pattern categorymost closely corresponding to the user's behavior pattern.

In some example embodiments, the coex manager 222 can be configured toconsider whether an application is running in the foreground orbackground when making a coexistence management decision. In thisregard, an application launched by a user and running in the foregroundcan be considered to have a higher value than a background applicationand can be given preferential treatment. Thus, for example the coexmanager 222 can be configured in some example embodiments to makecoexistence management decisions that reduce, or even avoid, impactingthroughput for the application running in the foreground, even if datacommunication for the application in the foreground is impacting datacommunication for the background application. The consideration ofwhether an application is running in the foreground or in the backgroundcan be factored in addition to the respective priority levels ofapplications for which data communication is occurring when makingcoexistence management decisions.

In some example embodiments, the coex manager 222 can be furtherconfigured to factor a quality of service (QoS) level associated with anapplication when making a coexistence management decision. In thisregard, data communication associated with an application associatedwith a higher QoS level can be given preferential treatment over datacommunication associated with an application having a lower QoS level,even if data communication associated with the application having thelower QoS level is suffering as a victim to the data communication forthe application associated with the higher QoS level.

As a more particular example, if an application is mapped to QoS classindicator (QCI) 1 in an LTE network, the application can be consideredhigher value compared to an application mapped to QCI 7. As such,coexistence management can be performed to avoid impacting datacommunication for the application mapped to QCI 1, even if datacommunication for the application mapped to QCI 7 suffers as a victim todata communication for the application mapped to QCI 1.

The coex manager 222 can be further configured to consider the delaybudget associated with a QCI. In this regard, a low latency applicationcan be considered to have a higher value compared to a high latencyapplication. Thus, for example, coexistence management can be performedto avoid impacting data communication for the low latency application,even if data communication for the high latency application suffers as avictim to data communication for the low latency application.

In a scenario in which the wireless communication device 102 is used bymultiple users simultaneously, the coex manager 222 can be configured togive preference to data communication associated with an applicationused by a high priority user over data communication associated with anapplication used by a low priority user. As a particular example, thewireless communication device 102 of some example embodiments can beused in for ad hoc networking, such as if a second device is tethered toand/or otherwise in communication with the wireless communication device102 to use a network connection of the wireless communication device102. A user of the second device can be considered a guest user having alower priority than the primary user of the wireless communicationdevice 102. As such, the coex manager 222 of some example embodimentscan be configured to consider data communication associated with theprimary user of the wireless communication device 102 to be higher valuethan data communication associated with the guest user.

In some example embodiments, if a location-based service application,such as a location daemon, is the high value application at a giventime, the behavior module 220 and coex manager 222 can be configured towork with the location module 224 to provide the location module 224with access to a radio resource(s) that can be used to provide enhancedand/or otherwise more accurate location information than if the locationmodule 224 did not have access to the radio resource(s). Thus, forexample, the location module 224 can be provided with access to a radioresource at the expense of a lower priority application that can beusing, or seeking to use, a radio resource for data communication at thesame time. If, however, the location-based service application has alower priority than another application, then the coex manager 222 canallocate radio resources to preserve and/or enhance performance of thehigher value application rather than allocate additional radioresource(s) to the location-based service application.

FIG. 6 illustrates a flowchart according to an example method formanaging radio resources for location-based services based on userbehavior in accordance with some such example embodiments. In thisregard, FIG. 6 illustrates operations that can be performed by awireless communication device, such as wireless communication device102, in accordance with some example embodiments. One or more ofprocessing circuitry 210, processor 212, memory 214, first wirelesscommunication interface 216, second wireless communication interface218, behavior module 220, coex manager 222, or location module 224 can,for example, provide means for performing one or more of the operationsillustrated in and described with respect to FIG. 6.

Operation 600 can include a location-based service application beingactive concurrent with a second application. Operation 610 can includethe wireless communication device 102 determining whether a prioritylevel of the location-based service is higher than the priority level ofthe second application.

If the priority level of the location-based service is not higher thanthe priority level of the second application, the method can proceed tooperation 620, in which the location-based service may not be allowed touse a radio resource. In this regard, for example, the secondapplication can be allowed to use the radio resource rather than thelocation-based service. Alternatively, as another example, the radioresource can go unused so as to avoid causing interference to ongoingdata communication for the second application. The radio resource can,for example, be an additional radio resource (or resources), which canallow the location-based service to derive a more accurate and/orotherwise enhanced location compared to a location that can be derivedwithout access to the radio resource.

If, however, the priority level of the location-based service is higherthan the priority level of the second application, the method caninstead proceed to operation 630, which can include the wirelesscommunication device 102 allowing the location-based service to use theradio resource (or resources) for location resolution. In this regard,the location-based service can be allowed to use an additionalresource(s) to derive a more accurate and/or otherwise enhanced locationcompared to a location that can be derived without access to the radioresource. In some example embodiments, operation 630 can includeallowing the location-based service to use the radio resource ratherthan the second application. Additionally or alternatively, in someexample embodiments, operation 630 can include allowing thelocation-based service to use the radio resource even if use of theradio resource by the location-based service interferes with ongoingdata communication associated with the second application.

Operations 610-630 can, for example, be performed attendant toperformance of operation 440 in accordance with some example embodimentsin which a location-based service is one of the two applications.

In some example embodiments, the coex manager 222 and/or other entitythat can be responsible for interface selection on the wirelesscommunication device 102 can be configured to use application prioritylevels that can be assigned based on a user behavior pattern inaccordance with one or more example embodiments disclosed herein toselect a wireless communication interfaces from available wirelesscommunication interfaces, such as the first wireless communicationinterface 216 and the second wireless communication interface 218, touse for data communication for an application. In this regard, if alaunched application has a high priority level (e.g., a priority levelsatisfying a threshold priority level), a wireless communicationinterface offering a best available radio link quality (e.g., bestthroughput, lowest latency, and/or the like) can be selected for theapplication to provide the user with a better quality of experience whenusing the application. If, however, a launched application has a lowpriority level (e.g., a priority level less than a threshold level), theapplication may not be provided with access to the wirelesscommunication interface offering the best available radio link qualityso that radio resources on the wireless communication interface offeringthe best available radio link quality can be used for another activeapplication(s) having a higher priority level and/or reserved for use byan application having a higher priority level that may be launched inthe future.

FIG. 7 illustrates a flowchart according to an example method forselecting a wireless communication interface for an application based onuser behavior in accordance with some such example embodiments. In thisregard, FIG. 7 illustrates operations that can be performed by awireless communication device, such as wireless communication device102, in accordance with some example embodiments. One or more ofprocessing circuitry 210, processor 212, memory 214, first wirelesscommunication interface 216, second wireless communication interface218, behavior module 220, coex manager 222, or location module 224 can,for example, provide means for performing one or more of the operationsillustrated in and described with respect to FIG. 7.

At operation 700, an application can be launched on the wirelesscommunication device 102. Operation 710 can include the wirelesscommunication device 102 determining the priority level assigned to theapplication.

Operation 720 can include the wireless communication device 102selecting an available wireless communication interface to use for datacommunication for the application based at least in part on the prioritylevel assigned to the application. As such, applications having higherpriority levels can be mapped to a wireless communication interfaceoffering a better radio link quality than applications having lowerpriority levels. Accordingly, user behavior driven priority levels canbe used for interface selection in some embodiments to further provide auser with a customized user experience based on the user's historicalbehavior pattern.

In some example embodiments, the coex manager 222 and/or other entitythat can be responsible for interface selection on the wirelesscommunication device 102 can be configured to use application prioritylevels that can be assigned based on a user behavior pattern inaccordance with one or more example embodiments disclosed herein toswitch data communication for an active application from a firstwireless communication interface, such as the first wirelesscommunication interface 216, to a second wireless communicationinterface, such as the second wireless communication interface 218.

As an example scenario, data communication can for an application can bemapped to a first wireless communication interface 216 based onavailable wireless communication interfaces and/or available networkcoverage at a given time, such as at time of launch in accordance withthe method illustrated in and described with respect to FIG. 7. Aftermapping data communication for the application to the first wirelesscommunication interface 216, network coverage can become available overthe second wireless communication interface 218 that can provide abetter quality of experience for a user of the application than theexisting radio link being used for data communication for theapplication over the first wireless communication interface 216. In thisregard, the newly available network coverage over the second wirelesscommunication interface 218 in this example scenario can, for example,offer better radio link quality (e.g., better throughput, lower latency,and/or the like) than the radio link over the first wirelesscommunication interface 216 and/or offer a reduced level of in-deviceinterference to the data communication for the application.

As a more particular example, data communication for an application caninitially be mapped to a cellular communication interface. WLAN coveragemay not have been available when the application was launched.Alternatively, available WLAN coverage when the application was launchedmay not have provided as good of a radio link quality as the cellularcoverage, may not have been trusted by the wireless communication device102, and/or the wireless communication device 102 may not have hadsecurity credentials to access the WLAN coverage. The user of thewireless communication device 102 may arrive at his or her house whiledata communication is ongoing such that the wireless communicationdevice 102 may come within coverage of a home WLAN network for the user,which can offer a better quality of experience than the cellular linkbeing used for data communication for the application.

If the data communication for the application can be handed over to thewireless communication interface via which the newly available networkcoverage can be accessed (e.g., without dropping the data communicationsession), the coex manager 222 of some example embodiments can beconfigured to switch the data communication for the application to thewireless communication interface via which the newly available networkcoverage can be accessed to enhance the quality of experience for theuser. In some such example embodiments, the data communication can beswitched between wireless communication interfaces if the applicationhas an assigned priority level satisfying a threshold, such as if theapplication is a high value application for the user. If, however, theapplication has a low priority level (e.g., a priority level less than athreshold level), in some such example embodiments, data communicationcan be maintained on the existing wireless communication interface evenafter the wireless communication device 102 encounters the newlyavailable network coverage.

FIG. 8 illustrates a flowchart according to an example method forswitching a wireless communication interface for an application inaccordance with some such example embodiments. In this regard, FIG. 8illustrates operations that can be performed by a wireless communicationdevice, such as wireless communication device 102, in accordance withsome example embodiments. One or more of processing circuitry 210,processor 212, memory 214, first wireless communication interface 216,second wireless communication interface 218, behavior module 220, coexmanager 222, or location module 224 can, for example, provide means forperforming one or more of the operations illustrated in and describedwith respect to FIG. 8.

At operation 800, data communication for an active application can bemapped to a first wireless communication interface, such as the firstwireless communication interface 216, implemented on the wirelesscommunication device 102.

Operation 810 can include the wireless communication device 102determining that network coverage is newly available over a secondwireless communication interface, such as the second wirelesscommunication interface 218, implemented on the wireless communicationdevice 102. Operation 810 can further include determining that the newlyavailable network coverage would offer a better quality of experiencethan the radio link being used for the data communication over the firstwireless communication interface. For example, the RAT associated withthe newly available network coverage can offer better throughput, lowerlatency, better QoS, and/or the like than the RAT being used forcommunication over the first wireless communication interface. As afurther example, in some embodiments, operation 810 can includeconsidering historic knowledge of a location of the wirelesscommunication device 102 and/or knowledge of the newly available networkcoverage, itself, such as can be included in a behavior patterndetermined for the user. For example, if the wireless communicationdevice 102 is located at the user's home and the newly available networkcoverage is the user's home WLAN, then the wireless communication device102 may have knowledge of a historic performance level of the user'shome WLAN and can use this knowledge to determine that the newlyavailable network coverage offers a better quality of experience thanthe radio link being used for the data communication over the firstwireless communication interface.

In some example embodiments, if the newly available network coveragedoes not offer a better quality of experience than the radio link beingused for the data communication over the first wireless communicationinterface, then operations 820-830, described below, can be omitted. Asan example, a user can board a bus having on-board Wi-Fi coverage.However, the Wi-Fi coverage may be known by the wireless communicationdevice 102 from prior observations to not provide a better quality ofexperience than cellular coverage. In such a scenario, the datacommunication for the application can be maintained on the cellularcommunication interface, and operations 820-830 can be omitted.

Operation 820 can include the wireless communication device 102determining based at least in part on the priority level assigned to theapplication to switch the data communication for the application to thesecond wireless communication interface.

Operation 830 can include the wireless communication device 102switching the data communication for the application to the secondwireless communication interface. For example, operation 830 can includethe wireless communication device 102 determining that a priority levelassigned to the application satisfies a threshold priority level forswitching to the second wireless communication interface.

In some example embodiments, user behavior patterns and/or assignedapplication priority levels can be synchronized across multiple wirelesscommunication devices associated with a given user by a cloud-basedsynchronization service. FIG. 9 illustrates an example system 900 forsynchronizing behavior patterns across multiple wireless communicationdevices in accordance with some such example embodiments.

The system 900 can include the wireless communication device 102, whichcan access a network 904. The network 904 can include one or morewireline networks, one or more wireless network (e.g., a cellularnetwork, wireless local area network, wireless wide area network, somecombination thereof, or the like), or a combination thereof, and in someexample embodiments can include the Internet. In some exampleembodiments, the wireless communication device 102 can access thenetwork 904 via a radio link that can be supported by the first wirelesscommunication interface 216 or the second wireless communicationinterface 218. However, it will be appreciated that, in some exampleembodiments, the wireless communication device 102 can access thenetwork 904 via a wireline connection.

The wireless communication device 102 can communicate with asynchronization service 902 over the network 904. The synchronizationservice 902 can be implemented as one or more computing devices, such asone or more servers, which can provide a cloud-based platform configuredto provide synchronization services in accordance with various exampleembodiments. In some example embodiments, the synchronization service902 can be provided by Apple® Inc.'s iCloud® platform and/or by othersimilar cloud-based synchronization platform.

The system 900 can further include a second wireless communicationdevice 906, which can be embodied as any wireless communication device,such as a cellular phone, such as a smart phone device, a tabletcomputing device, a laptop computer, and/or other wireless communicationdevice. In some example embodiments, the second wireless communicationdevice 906 can be a second wireless communication device 102. The secondwireless communication device 906 can be associated with one or moreusers that are also associated with the wireless communication device102. While only two wireless communication devices are illustrated inthe system 900, it will be appreciated that some users can have three ormore wireless communication devices and example embodiments providingfor synchronization across three or more such wireless communicationdevices are contemplated within the scope of the disclosure.

The wireless communication device 102 of some example embodiments can beconfigured to upload (e.g., periodically) a behavior pattern and/orapplication priority levels assigned for a user of the wirelesscommunication device 102 to the synchronization service 902. Forexample, in some embodiments, the wireless communication device 102 canupdate a behavior pattern and/or application priority levels for a usermaintained on the synchronization service 902 based on additional userbehavior observed on the wireless communication device 102 since theprevious update. The synchronization service 902 can be configured tosynchronize the behavior pattern and/or application priority levels tothe second wireless communication device 906. In this regard,coexistence management decisions can be made on the second wirelesscommunication device 906 can be made based on the same behavior patternand/or application priority levels as on the wireless communicationdevice 102 such that the user can be provided with a similar quality ofexperience across multiple devices.

In some example embodiments, a user's behavior pattern can be determinedbased at least in part on the user's usage of multiple wirelesscommunication devices. For example, characteristics of the user's usageof the second wireless communication device 906 can be provided to thesynchronization service 902 and can be combined with information aboutthe user's usage of the wireless communication device 902 to determine abehavior pattern of the user. In some such embodiments, thesynchronization service 902 can provide information regarding the user'susage of the second wireless communication device 906 to the wirelesscommunication device 102 and a behavior pattern for the user based onthe aggregated usage information for the wireless communication device102 and the second wireless communication device 906 can be determinedon the wireless communication device 102.

However, in some example embodiments, the synchronization service 902can collect usage information from both the wireless communicationdevice 102 and the second communication device 906, and can locallydetermine a behavior pattern for the user at the synchronization service902. In such example embodiments, at least a portion of thefunctionality of the behavior module 220 can be performed at thesynchronization service 902 such that functionality of the behaviormodule 220 can be distributed between the wireless communication device102 and synchronization service 902 in some example embodiments.

In some example embodiments in which a behavior pattern for the user canbe determined by the synchronization service 902, the synchronizationservice 902 can be further configured to assign priority levels toapplications implemented on the wireless communication device 102 and/oron the second wireless communication device 906 and provide the assignedpriority levels to the wireless communication device 102 and/or to thesecond wireless communication device 906. However, in some exampleembodiments in which behavior pattern for the user can be determined bythe synchronization service 902, the synchronization service 902 canprovide the behavior pattern to the wireless communication device 102and/or to the second wireless communication device 906 and applicationpriority levels can be assigned locally at the wireless communicationdevice 102 and/or at the second wireless communication device 906.

In some embodiments in which the synchronization service 902 assignsapplication priority levels and/or has access to priority levelsassigned by the wireless communication device 102 and/or by the secondwireless communication device 906, the synchronization service 902 cansynchronize the application priority levels to another wirelesscommunication device associated with a user. Thus, for example, in someembodiments, a wireless communication device, such as wirelesscommunication device 102 and/or second wireless communication device906, can query the synchronization service 902 for current applicationpriority levels for a device user, and the synchronization service 902can provide the application priority levels for the user in response tothe query.

In some example embodiments, user behavior information and/orapplication priority levels that can be maintained on thesynchronization service 902 can be used for marketing and advertising.For example, targeted advertising can be provided to wirelesscommunication device 102 based on a behavior pattern and/or applicationpriority levels for the user that are known to the synchronizationservice 902.

The various aspects, embodiments, implementations or features of thedescribed embodiments can be used separately or in any combination.Various aspects of the described embodiments can be implemented bysoftware, hardware or a combination of hardware and software. Thedescribed embodiments can also be embodied as computer readable code onone or more computer readable mediums. The computer readable medium canbe any data storage device that can store data which can thereafter beread by a computer system. Examples of the computer readable mediuminclude read-only memory, random-access memory, CD-ROMs, HDDs, DVDs,magnetic tape, and optical data storage devices. The computer readablemedium can also be distributed over network-coupled computer systems sothat the computer readable code is stored and executed in a distributedfashion.

In the foregoing detailed description, reference was made to theaccompanying drawings, which form a part of the description and in whichare shown, by way of illustration, specific embodiments in accordancewith the described embodiments. Although these embodiments are describedin sufficient detail to enable one skilled in the art to practice thedescribed embodiments, it is understood that these examples are notlimiting; such that other embodiments may be used, and changes may bemade without departing from the spirit and scope of the describedembodiments. For example, it will be appreciated that the ordering ofoperations illustrated in the flowcharts is non-limiting, such that theordering of two or more operations illustrated in and described withrespect to a flowchart can be changed in accordance with some exampleembodiments. As another example, it will be appreciated that in someembodiments, one or more operations illustrated in and described withrespect to a flowchart can be optional, and can be omitted.

Further, the foregoing description, for purposes of explanation, usedspecific nomenclature to provide a thorough understanding of thedescribed embodiments. However, it will be apparent to one skilled inthe art that the specific details are not required in order to practicethe described embodiments. Thus, the foregoing descriptions of specificembodiments are presented for purposes of illustration and description.The description of and examples disclosed with respect to theembodiments presented in the foregoing description are provided solelyto add context and aid in the understanding of the describedembodiments. The description is not intended to be exhaustive or tolimit the described embodiments to the precise forms disclosed. It willbe apparent to one of ordinary skill in the art that many modifications,alternative applications, and variations are possible in view of theabove teachings. In this regard, one of ordinary skill in the art willreadily appreciate that the described embodiments may be practicedwithout some or all of these specific details. Further, in someinstances, well known process steps have not been described in detail inorder to avoid unnecessarily obscuring the described embodiments.

1. A method for customized coexistence management based on user behaviorin a wireless communication device comprising a first wirelesscommunication interface and a second wireless communication interface,the method comprising the wireless communication device: determining abehavior pattern of a user of the wireless communication device, thebehavior pattern being defined based at least in part on historicalusage of the wireless communication device by the user; assigning apriority level to each of a plurality of applications on the wirelesscommunication device based at least in part on the behavior pattern, theplurality of applications including a first application and a secondapplication; using the first wireless communication interface to supportdata communication for the first application; using the second wirelesscommunication interface to support data communication for the secondapplication concurrent with data communication for the first applicationover the first wireless communication interface; and managing in-devicecoexistence of the first wireless communication interface and the secondwireless communication interface during concurrent data communicationfor the first application and the second application based at least inpart on the priority level assigned to the first application and thepriority level assigned to the second application.
 2. The method ofclaim 1, further comprising: categorizing the user in a behavior patterncategory selected from a plurality of defined behavior patterncategories based at least in part on the behavior pattern, the behaviorpattern category defining a set of application priority levels; andwherein assigning a priority level to each of the plurality ofapplications comprises assigning a priority level to each of theplurality of applications in accordance with the set of applicationpriority levels defined by the behavior pattern category.
 3. The methodof claim 1, wherein: assigning a priority level to each of the pluralityof applications comprises assigning a different set of priority levelsfor each of a plurality of periodically occurring time frames; andmanaging in-device coexistence of the first wireless communicationinterface and the second wireless communication interface comprisesmanaging in-device coexistence of the first wireless communicationinterface and the second wireless communication interface based at leastin part on priority levels assigned to the first application and thesecond application for a time frame in which the concurrent datacommunication for the first application and the second applicationoccurs.
 4. The method of claim 1, wherein: assigning a priority level toeach of the plurality of applications comprises assigning a differentset of priority levels for each of a plurality of device usage contexts;and managing in-device coexistence of the first wireless communicationinterface and the second wireless communication interface comprisesmanaging in-device coexistence of the first wireless communicationinterface and the second wireless communication interface based at leastin part on priority levels assigned to the first application and thesecond application for a device usage context of the wirelesscommunication device during the concurrent data communication for thefirst application and the second application.
 5. The method of claim 1,wherein the first wireless communication interface uses an aggressorradio access technology (RAT) that interferes with data reception via avictim RAT used by the second wireless communication interface, whereinthe first application has a higher priority level than the secondapplication, and wherein: managing in-device coexistence of the firstwireless communication interface and the second wireless communicationinterface comprises preventing dropping outgoing data associated withdata communication for the first application.
 6. The method of claim 1,wherein the first wireless communication interface uses an aggressorradio access technology (RAT) that interferes with data reception via avictim RAT used by the second wireless communication interface, whereinthe second application has a higher priority level than the firstapplication, and wherein: managing in-device coexistence of the firstwireless communication interface and the second wireless communicationinterface comprises at least temporarily increasing a priority of thedata communication for the second application to preempt datacommunication for the first application.
 7. The method of claim 1,wherein the first application is a location-based service having ahigher priority level than the second application, and wherein: managingin-device coexistence of the first wireless communication interface andthe second wireless communication interface comprises allowing thelocation-based service to use a radio resource for location resolutionat expense of the data communication for the second application.
 8. Themethod of claim 1, further comprising the wireless communication device:selecting to use the first wireless communication interface for datacommunication for the first application from a plurality of availablewireless communication interfaces, including the first wirelesscommunication interface and the second communication interface, based atleast in part on the priority level assigned to the first application.9. The method of claim 1, wherein the behavior pattern is definedfurther based on historical usage of a second wireless communicationdevice by the user, and wherein the behavior pattern and at least aportion of the assigned priority levels are synchronized between thewireless communication device and the second wireless communicationdevice via a synchronization service.
 10. The method of claim 1, whereinmanaging in-device coexistence of the first wireless communicationinterface and the second wireless communication interface comprisesmanaging in-device coexistence of the first wireless communicationinterface and the second wireless communication interface further basedon one or more of a quality of service (QoS) level associated with thefirst application or a QoS level associated with the second application.11. The method of claim 1, wherein managing in-device coexistence of thefirst wireless communication interface and the second wirelesscommunication interface comprises managing in-device coexistence of thefirst wireless communication interface and the second wirelesscommunication interface further based on whether the first applicationis running in foreground or in background.
 12. A wireless communicationdevice comprising: a first wireless communication interface; a secondwireless communication interface; and processing circuitry coupled withthe first wireless communication interface and with the second wirelesscommunication interface, the processing circuitry configured to controlthe wireless communication device to at least: determine a behaviorpattern of a user of the wireless communication device; assign apriority level to each of a plurality of applications on the wirelesscommunication device based at least in part on the behavior pattern, theplurality of applications including a first application and a secondapplication; use the first wireless communication interface for datacommunication for the first application; use the second wirelesscommunication interface for data communication for the secondapplication; and manage in-device coexistence of the first wirelesscommunication interface and the second wireless communication interfacefor data communication for the first application and the secondapplication based at least in part on the priority level assigned to thefirst application and the priority level assigned to the secondapplication.
 13. The wireless communication device of claim 12, whereinthe processing circuitry is further configured to control the wirelesscommunication device to: categorize the user in a behavior patterncategory selected from a plurality of defined behavior patterncategories based at least in part on the behavior pattern, the behaviorpattern category defining a set of application priority levels; andassign a priority level to each of the plurality of applications inaccordance with the set of application priority levels defined by thebehavior pattern category.
 14. The wireless communication device ofclaim 12, wherein the processing circuitry is further configured tocontrol the wireless communication device to: assign a different set ofpriority levels for each of a plurality of periodically occurring timeframes; and manage in-device coexistence of the first wirelesscommunication interface and the second wireless communication interfacebased at least in part on priority levels assigned to the firstapplication and the second application for a time frame in which theconcurrent data communication for the first application and the secondapplication occurs.
 15. The wireless communication device of claim 12,wherein the processing circuitry is further configured to control thewireless communication device to: assign a different set of prioritylevels for each of a plurality of device usage contexts; and managein-device coexistence of the first wireless communication interface andthe second wireless communication interface based at least in part onpriority levels assigned to the device usage contexts.
 16. The wirelesscommunication device of claim 12, wherein the first wirelesscommunication interface uses an aggressor radio access technology (RAT)that interferes with data reception via a victim RAT used by the secondwireless communication interface, wherein the first application has ahigher priority level than the second application, and wherein theprocessing circuitry is further configured to control the wirelesscommunication device to: manage in-device coexistence of the firstwireless communication interface and the second wireless communicationinterface at least in part by controlling the wireless communicationdevice to prevent dropping outgoing data associated with datacommunication for the first application.
 17. The wireless communicationdevice of claim 12, wherein the first wireless communication interfaceuses an aggressor radio access technology (RAT) that interferes withdata reception via a victim RAT used by the second wirelesscommunication interface, wherein the second application has a higherpriority level than the first application, and wherein the processingcircuitry is further configured to control the wireless communicationdevice to: manage in-device coexistence of the first wirelesscommunication interface and the second wireless communication interfaceat least in part by controlling the wireless communication device to atleast temporarily increase a priority of the data communication for thesecond application to preempt data communication for the firstapplication.
 18. The wireless communication device of claim 12, whereinthe first application is a location-based service having a higherpriority level than the second application, and wherein the processingcircuitry is further configured to control the wireless communicationdevice to: manage in-device coexistence of the first wirelesscommunication interface and the second wireless communication interfaceat least in part by controlling the wireless communication device toallow the location-based service to use a radio resource for locationresolution at expense of the data communication for the secondapplication.
 19. A non-transitory computer readable storage mediumhaving instructions stored thereon which, when executed at a wirelesscommunication device, cause the wireless communication device to performa method that includes: determining a behavior pattern of a user of thewireless communication device; and managing in-device coexistence of aplurality of wireless communication interfaces in the wirelesscommunication device based on the behavior pattern.
 20. Thenon-transitory computer readable storage medium of claim 19, wherein themethod further includes: assigning a priority level to each of aplurality of applications on the wireless communication device based atleast in part on the behavior pattern, the plurality of applicationsincluding a first application and a second application; wherein themanaging the in-device coexistence of the plurality of wirelesscommunication interfaces is further based on the priority level assignedto the first application and the priority level assigned to the secondapplication.